package org.langqiao.string.stringbuffer;

public class StringBufferUtil {
	
	public static void baseSplice(String args[]){
		StringBuffer buf = new StringBuffer() ;	// 声明StringBuffer对象 
		buf.append("Hello ") ;					// 向StringBuffer中添加内容
		buf.append("World").append("!!!") ;		// 可以连续调用append()方法
		buf.append("\n") ;						// 添加一个转义字符
		buf.append("数字 = ").append(1).append("\n") ;	// 添加数字
		buf.append("字符 = ").append('C').append("\n");	 // 添加字符
		buf.append("布尔 = ").append(true) ;	// 添加布尔值
		System.out.println(buf) ;			// 直接输出对象，调用toString()
	}
	
	public static void baseSpliceCall(String args[]){
		StringBuffer buf = new StringBuffer() ;	// 声明StringBuffer对象 
		buf.append("Hello ") ;		
		fun(buf) ;		// 传递StringBuffer内容 
		System.out.println(buf) ;	// 打印内容
	}
	
	public static void fun(StringBuffer s){		// 接收StringBuffer引用
		s.append("MLDN ").append("LiXingHua") ;	// 修改StringBuffer的内容
	}
	
	public static void baseInsert(String args[]){
		StringBuffer buf = new StringBuffer() ;	// 声明StringBuffer对象 
		buf.append("World!!") ;		// 添加内容
		buf.insert(0,"Hello ") ;		// 在第一个内容之前添加内容
		System.out.println(buf) ;
		buf.insert(buf.length(),"MLDN~") ;	// 在最后添加内容
		System.out.println(buf) ;
	}
	
	public static void baseReverse(String args[]){
		StringBuffer buf = new StringBuffer() ;	// 声明StringBuffer对象 
		buf.append("Hello ").append("World!!") ;		// 向StringBuffer添加内容
		buf.replace(6,11,"LiXingHua") ;		// 将world的内容替换
		System.out.println("内容替换之后的结果：" + buf) ;	// 输出内容
	}
	
	public static void baseReplace(String args[]){
		StringBuffer buf = new StringBuffer() ;	// 声明StringBuffer对象 
		buf.append("Hello ").append("World!!") ;		// 向StringBuffer添加内容
		buf.replace(6,11,"LiXingHua") ;		// 将world的内容替换
		System.out.println("内容替换之后的结果：" + buf) ;	// 输出内容
	}
	
	public static void baseSub(String args[]){
		StringBuffer buf = new StringBuffer() ;	// 声明StringBuffer对象 
		buf.append("Hello ").append("World!!") ;		// 向StringBuffer添加内容
		buf.replace(6,11,"LiXingHua") ;		// 将world的内容替换
		String str = buf.substring(6,15) ;	// 截取指定范围的内容
		System.out.println("内容替换之后的结果：" + str) ;	// 输出内容
	}
	
	public static void baseDelete(String args[]){
		StringBuffer buf = new StringBuffer() ;	// 声明StringBuffer对象 
		buf.append("Hello ").append("World!!") ;		// 向StringBuffer添加内容
		buf.replace(6,11,"LiXingHua") ;		// 将world的内容替换
		String str = buf.delete(6,15).toString() ;	// 删除指定范围中的内容
		System.out.println("删除之后的结果：" + str) ;	// 输出内容
	}
	
	public static void baseSearch(String args[]){
		StringBuffer buf = new StringBuffer() ;	// 声明StringBuffer对象 
		buf.append("Hello ").append("World!!") ;		// 向StringBuffer添加内容
		if(buf.indexOf("Hello")==-1){
			System.out.println("没有查找到指定的内容") ;
		}else{	// 不为01表示查找到内容
			System.out.println("可以查找到指定的内容") ;
		}
	}
	
	public static void baseSplice1(String args[]){
		String str1 = "LiXingHua" ;
		for(int i=0;i<100;i++){
			str1 += i ;		// 不断修改String的内存引用，性能低
		}
		System.out.println(str1) ;
	}
	
	public static void baseSplice2(String args[]){
		StringBuffer buf = new StringBuffer() ;
		buf.append("LiXingHua") ;
		for(int i=0;i<100;i++){
			buf.append(i);		// StringBuffer可以修改，性能高
		}
		System.out.println(buf) ;
	}
}
